チュートリアル　＞　Visual Basic6.0

Visual Basic6.0

VISAを使用してGPIB、RS232C、USB経由でPIA4800シリーズと通信します。

プロジェクトの設定

最初にプロジェクトに通信用ドライバ（VISAライブラリ）の設定をします。

[プロジェクト] > [参照設定]を選択してVISA COM3.0 Type Libraryを参照します。

GPIB、RS232C、USBで通信する

通信用ドライバの設定が終わると、GPIB、RS232C、USBで通信ができます。

VISAを経由しての通信手順を説明します。

VISAのオープン

VISAを経由してGPIB、RS232C、USB機器と通信するには、まずVISAをオープンします。VISAをオープンするときに、I/Oリソースを指定します。

例：USBを使用する場合のVISAのオープン

Set rm = CreateObject("VISA.GlobalRM")

Set msg = rm.Open("USB::0x0B3E::0x1014::00000001::INSTR", NO_LOCK, 0, "")

"USB::0x0B3E::0x1014::00000001::INSTR"がI/Oリソースです。

I/Oリソースは以下の構文になっています。[ ]で囲まれた部分は省略可能です。斜体で書かれている部分に適切な値を入れます。

GPIB | GPIB[board]::PrimaryAddress[::SecondaryAddress][::INSTR] 例：GPIB0に接続されたプライマリアドレス3の計測器の場合 GPIB0::3::INSTR
シリアル (RS232C) | ASRL[board][::INSTR] 例：シリアルポートCOM1に接続された計測器の場合 ASRL1::INSTR
USB | USB[board]::VendorID::ProductID::SerialNumber[::InterfaceNumber][::INSTR] 例：ベンダーID（VID)2878、プロダクトID（PID)4116、シリアルナンバー”00000001”を持つUSNTMC計測器の場合 USB0::0x0B3E::0x1014::00000001::INSTR

VISAでは、I/Oリソースにエイリアスを使用できます。

I/Oリソースにエイリアスを使用すると、アプリケーション内に直接エイリアス名をハードコーディングしても実行時に適切なI/Oリソース名に簡単に変換できます。

例：I/Oリソースにエイリアス（MYPIA）を使用した場合

Set msg = rm.Open("MYPIA", NO_LOCK, 0, "")

エイリアスを使用した場合には、実際のI/Oリソースは外部コンフィグレーション・テーブル等で指定します。

USBを使用する場合（KI-VISAの例）

KI-VISA以外のVISAを使用している場合には、ご使用のVISAマニュアルを参照してください。

機器の制御

次に、Read、Writeなどを使用して機器を制御します。

例：

msg.WriteString ("NODE 5") 'ノードアドレス5を指定
msg.WriteString ("CH 1") 'チャンネル1を指定
msg.WriteString ("VSET 10.0") '電圧値を10.0 Vに設定
msg.WriteString ("ISET 1.0") '電流値を1.0 Aに設定
msg.WriteString ("OUT 1") '出力オン

VISAのクローズ

最後にVISAをクローズします。

VISAのオープン、クローズは一連の処理の中で1回実行すれば大丈夫です。

msg.Close

PWR400LをPIA4850で制御するサンプルプログラム

Option Explicit

Dim rm As VisaComLib.ResourceManager

Dim msg As VisaComLib.IMessage

Private Sub cmdRead_Click()

'PWR400Lの電圧計測値、電流計測値をテキストボックスに表示する

'PWR400Lのノードアドレスは5に設定されているものとします。

Dim iPSno As Integer

Dim strBuff As String

msg.WriteString ("TRM 2") 'ターミネータをEOIに指定

msg.WriteString ("NODE 5") 'ノードアドレスを指定

msg.WriteString ("VOUT?") '電圧測定値を問い合わせ

strBuff = msg.ReadString(256) 'PIAから読み込み

txtVolt.Text = strBuff '電圧値をテキストボックスに表示

msg.WriteString ("IOUT?") '電流測定値を問い合わせ

strBuff = msg.ReadString(256) 'PIAから読み込み

txtCurr.Text = strBuff '電流値をテキストボックスに表示

End Sub

Private Sub cmdSet_Click()

'PWRに5V、3Aを設定する

'

msg.WriteString ("NODE 5") 'ノードアドレスを指定

msg.WriteString ("VSET 5") '5Vを設定

msg.WriteString ("ISET 3") '3Aを設定

msg.WriteString ("OUT 1") 'PWRの出力をオン

End Sub

Private Sub Form_Load() 'VISAのオープン

'機器の構成

' ＜＜コントローラ＞＞

' PIA4850

' ＜＜電源＞＞

' PWR400L

'

Set rm = CreateObject("VISA.GlobalRM")

'Set msg = rm.Open("GPIB0::1::INSTR", NO_LOCK, 0, "")

' シリアルNo.を書きます

Set msg = rm.Open("USB::0x0B3E::0x1014::00000001::INSTR", NO_LOCK, 0, "")

End Sub

Private Sub Form_Unload(Cancel As Integer) 'VISAのクローズ

msg.Close

End Sub